\input{static/headers.tex}
\title{OI Wiki.pdf \\ {\large version: 18.12-874a2f8} }
\author{OI Wiki Team}
\date{\today}

\begin{document}
\frontmatter
\maketitle\thispagestyle{empty}
\cleardoublepage
\input{static/preface.tex}
\cleardoublepage
\setcounter{page}{1}
\tableofcontents
\cleardoublepage
\mainmatter
\setcounter{page}{1}
\chapter{简介}
\input{docs/index.tex}
\section{OI 赛制简介}
\input{docs/intro/mode.tex}
\section{学习资源}
\input{docs/intro/resources.tex}
\section{常见错误}
\input{docs/intro/common-mistakes.tex}
\section{常见技巧}
\input{docs/intro/common-tricks.tex}
  \section{评测工具}
  \input{docs/intro/judgers.tex}
  \section{编辑工具}
  \input{docs/intro/editors.tex}
  \section{WSL (Windows 10)}
  \input{docs/intro/wsl.tex}
  \section{Special Judge}
  \input{docs/intro/spj.tex}
  \section{Testlib}
  \input{docs/intro/testlib.tex}
\input{docs/intro/about.tex}
\chapter{基础部分}
\input{docs/basic/index.tex}
\section{枚举}
\input{docs/basic/enumerate.tex}
\section{模拟}
\input{docs/basic/simulate.tex}
\section{递归 \& 分治}
\input{docs/basic/divide-and-conquer.tex}
\section{贪心}
\input{docs/basic/greedy.tex}
\section{排序}
\input{docs/basic/sort.tex}
\section{表达式求值}
\input{docs/basic/expression.tex}
\section{二分}
\input{docs/basic/binary.tex}
\section{构造}
\input{docs/basic/construction.tex}
\section{前缀和 \& 差分}
\input{docs/basic/prefix-sum.tex}
\section{文件操作}
\input{docs/basic/file-operation.tex}
\chapter{搜索}
\section{搜索部分简介}
\input{docs/search/index.tex}
\section{DFS}
\input{docs/search/dfs.tex}
\section{BFS}
\input{docs/search/bfs.tex}
\section{双向 BFS}
\input{docs/search/dbfs.tex}
\section{启发式搜索}
\input{docs/search/heuristic.tex}
\section{A*}
\input{docs/search/astar.tex}
\section{迭代加深搜索}
\input{docs/search/iterative.tex}
\section{IDA*}
\input{docs/search/idastar.tex}
\section{回溯法}
\input{docs/search/backtracking.tex}
\section{Dancing Links}
\input{docs/search/dlx.tex}
\section{优化}
\input{docs/search/optimization.tex}
\chapter{动态规划}
\section{动态规划部分简介}
\input{docs/dp/index.tex}
\section{记忆化搜索}
\input{docs/dp/memo.tex}
\section{背包 DP}
\input{docs/dp/backpack.tex}
\section{区间 DP}
\input{docs/dp/interval.tex}
\section{DAG 上的 DP}
\input{docs/dp/dag.tex}
\section{树形 DP}
\input{docs/dp/tree.tex}
\section{状压 DP}
\input{docs/dp/state.tex}
\section{数位 DP}
\input{docs/dp/number.tex}
\section{插头 DP}
\input{docs/dp/plug.tex}
\section{DP 优化}
\input{docs/dp/optimization.tex}
\section{其它 DP 方法}
\input{docs/dp/misc.tex}
\chapter{字符串}
\section{字符串部分简介}
\input{docs/string/index.tex}
\input{docs/string/lib-func.tex}
\section{字符串匹配}
\input{docs/string/match.tex}
\section{哈希}
\input{docs/string/hash.tex}
\section{前缀函数与 KMP 算法}
\input{docs/string/prefix-function.tex}
\section{字典树 (Trie)}
\input{docs/string/trie.tex}
\section{回文自动机}
\input{docs/string/pam.tex}
\section{回文树}
\input{docs/string/palindrome-tree.tex}
\section{后缀数组 (SA)}
\input{docs/string/sa.tex}
\section{AC 自动机}
\input{docs/string/ac-automaton.tex}
\section{后缀自动机 (SAM)}
\input{docs/string/sam.tex}
\section{后缀树}
\input{docs/string/suffix-tree.tex}
\section{Manacher}
\input{docs/string/manacher.tex}
\section{最小表示法}
\input{docs/string/minimal-string.tex}
\section{Z 函数（扩展 KMP）}
\input{docs/string/z-function.tex}
\chapter{数学}
\section{数学部分简介}
\input{docs/math/index.tex}
\section{进制}
\input{docs/math/base.tex}
\section{位运算}
\input{docs/math/bit.tex}
\section{高精度}
\input{docs/math/bignum.tex}
\section{快速幂}
\input{docs/math/quick-pow.tex}
  \section{素数}
  \input{docs/math/prime.tex}
  \section{最大公约数}
  \input{docs/math/gcd.tex}
  \section{欧拉函数}
  \input{docs/math/euler.tex}
  \section{筛法}
  \input{docs/math/sieve.tex}
  \section{费马小定理}
  \input{docs/math/fermat.tex}
  \section{裴蜀定理}
  \input{docs/math/bezouts.tex}
  \section{乘法逆元}
  \input{docs/math/inverse.tex}
  \section{线性方程}
  \input{docs/math/linear-equation.tex}
  \section{中国剩余定理}
  \input{docs/math/crt.tex}
  \section{BSGS}
  \input{docs/math/bsgs.tex}
  \section{原根}
  \input{docs/math/primitive-root.tex}
\section{高斯消元}
\input{docs/math/gauss.tex}
\section{矩阵}
\input{docs/math/matrix.tex}
\section{复数}
\input{docs/math/complex.tex}
\section{分段打表}
\input{docs/math/dictionary.tex}
\section{莫比乌斯反演}
\input{docs/math/mobius.tex}
\section{杜教筛}
\input{docs/math/du-sieves.tex}
\section{线性基}
\input{docs/math/basis.tex}
  \section{多项式部分简介}
  \input{docs/math/poly.tex}
  \section{拉格朗日插值}
  \input{docs/math/lagrange-poly.tex}
  \section{快速傅里叶变换}
  \input{docs/math/fft.tex}
  \section{快速数论变换}
  \input{docs/math/ntt.tex}
  \section{快速沃尔什变换}
  \input{docs/math/fwt.tex}
  \section{排列组合}
  \input{docs/math/combination.tex}
  \section{卡特兰数}
  \input{docs/math/catalan.tex}
  \section{斯特林数}
  \input{docs/math/stirling.tex}
  \section{康托展开}
  \input{docs/math/cantor.tex}
  \section{容斥原理}
  \input{docs/math/inclusion-exclusion-principle.tex}
  \section{抽屉原理}
  \input{docs/math/drawer-principle.tex}
\section{概率 \& 期望}
\input{docs/math/expectation.tex}
\section{置换群}
\input{docs/math/permutation-group.tex}
\section{数值积分}
\input{docs/math/integral.tex}
\section{线性规划}
\input{docs/math/linear-programming.tex}
\section{博弈论}
\input{docs/math/game.tex}
\section{杂项}
\input{docs/math/misc.tex}
\chapter{数据结构}
\section{数据结构部分简介}
\input{docs/ds/index.tex}
  \section{STL 简介}
  \input{docs/ds/stl.tex}
  \input{docs/ds/stl/vector.tex}
  \section{priority\_queue}
  \input{docs/ds/stl/priority_queue.tex}
  \section{map}
  \input{docs/ds/stl/map.tex}
  \section{bitset}
  \input{docs/ds/stl/bitset.tex}
  \section{pb\_ds 简介}
  \input{docs/ds/pb-ds/index.tex}
  \section{priority\_queue}
  \input{docs/ds/pb-ds/priority-queue.tex}
\section{栈}
\input{docs/ds/stack.tex}
\section{队列}
\input{docs/ds/queue.tex}
\section{链表}
\input{docs/ds/linked-list.tex}
\section{哈希表}
\input{docs/ds/hash.tex}
\input{docs/ds/dsu.tex}
\section{堆}
\input{docs/ds/heap.tex}
  \section{分块思想}
  \input{docs/ds/square-root-decomposition.tex}
  \input{docs/ds/block-list.tex}
  \section{块状数组}
  \input{docs/ds/block-array.tex}
  \section{树分块}
  \input{docs/ds/tree-decompose.tex}
\section{单调栈}
\input{docs/ds/monotonous-stack.tex}
\section{单调队列}
\input{docs/ds/monotonous-queue.tex}
\section{倍增}
\input{docs/ds/sparse-table.tex}
\section{树状数组}
\input{docs/ds/bit.tex}
\section{线段树}
\input{docs/ds/segment.tex}
\section{划分树}
\input{docs/ds/dividing.tex}
\section{虚树}
\input{docs/ds/virtual-tree.tex}
\section{Size Balanced Tree}
\input{docs/ds/sbt.tex}
\section{Treap}
\input{docs/ds/treap.tex}
\section{Splay}
\input{docs/ds/splay.tex}
\section{WBLT}
\input{docs/ds/wblt.tex}
\section{AVL 树}
\input{docs/ds/avl.tex}
\section{替罪羊树}
\input{docs/ds/scapegoat.tex}
  \input{docs/ds/seg-in-seg.tex}
  \section{平衡树套线段树}
  \input{docs/ds/seg-in-balanced.tex}
  \input{docs/ds/balanced-in-seg.tex}
  \section{树状数组套主席树}
  \input{docs/ds/persistent-in-bit.tex}
\section{K-Dtree}
\input{docs/ds/k-dtree.tex}
  \section{可持久化数据结构简介}
  \input{docs/ds/persistent.tex}
  \section{可持久化线段树}
  \input{docs/ds/persistent-seg.tex}
  \section{可持久化块状数组}
  \input{docs/ds/persistent-block-array.tex}
  \section{可持久化平衡树}
  \input{docs/ds/persistent-balanced.tex}
  \section{可持久化字典树}
  \input{docs/ds/persistent-trie.tex}
\section{Link Cut Tree}
\input{docs/ds/lct.tex}
\section{Euler Tour Tree}
\input{docs/ds/ett.tex}
\chapter{图论}
\section{图论部分简介}
\input{docs/graph/index.tex}
\section{图论基础}
\input{docs/graph/basic.tex}
\section{图的遍历}
\input{docs/graph/traverse.tex}
  \section{树基础}
  \input{docs/graph/tree-basic.tex}
  \section{最近公共祖先}
  \input{docs/graph/lca.tex}
  \section{DFS 序}
  \input{docs/graph/dfs-order.tex}
  \section{树的其他问题}
  \input{docs/graph/tree-misc.tex}
  \section{树链剖分}
  \input{docs/graph/heavy-light-decomposition.tex}
  \section{树分治}
  \input{docs/graph/tree-divide.tex}
  \section{动态树分治}
  \input{docs/graph/dynamic-tree-divide.tex}
\section{有向无环图}
\input{docs/graph/dag.tex}
\section{拓扑排序}
\input{docs/graph/topo.tex}
\section{最小生成树}
\input{docs/graph/mst.tex}
\section{最短路}
\input{docs/graph/shortest-path.tex}
\section{差分约束}
\input{docs/graph/differential-constraints.tex}
\section{k 短路}
\input{docs/graph/kth-path.tex}
  \section{强连通分量}
  \input{docs/graph/scc.tex}
  \section{双连通分量}
  \input{docs/graph/bcc.tex}
  \section{割点和桥}
  \input{docs/graph/bridge.tex}
  \section{2-SAT}
  \input{docs/graph/2-sat.tex}
\section{欧拉图}
\input{docs/graph/euler.tex}
\section{二分图}
\input{docs/graph/bi-graph.tex}
\section{最小环}
\input{docs/graph/min-circle.tex}
  \section{网络流简介}
  \input{docs/graph/flow.tex}
  \section{网络流拆点}
  \input{docs/graph/flow/node.tex}
  \section{最大流}
  \input{docs/graph/flow/max-flow.tex}
  \section{最小割}
  \input{docs/graph/flow/min-cut.tex}
  \section{费用流}
  \input{docs/graph/flow/min-cost.tex}
  \section{上下界网络流}
  \input{docs/graph/flow/bound.tex}
\chapter{计算几何}
\section{计算几何部分简介}
\input{docs/geometry/index.tex}
\section{二维计算几何基础}
\input{docs/geometry/2d.tex}
\section{三维计算几何基础}
\input{docs/geometry/3d.tex}
\section{Pick 定理}
\input{docs/geometry/pick.tex}
\section{三角剖分}
\input{docs/geometry/triangulation.tex}
\section{凸包}
\input{docs/geometry/convex-hull.tex}
\section{扫描线}
\input{docs/geometry/scanning.tex}
\section{旋转卡壳}
\input{docs/geometry/rotating-calipers.tex}
\section{半平面交}
\input{docs/geometry/half-plane-intersection.tex}
\section{计算几何杂项}
\input{docs/geometry/magic.tex}
\chapter{杂项}
\section{杂项简介}
\input{docs/misc/index.tex}
\section{非传统题}
\input{docs/misc/non-traditional.tex}
\input{docs/misc/cdq-divide.tex}
\section{莫队算法}
\input{docs/misc/mo-algo.tex}
\section{爬山算法}
\input{docs/misc/hill-climbing.tex}
\section{分数规划}
\input{docs/misc/fractional-programming.tex}
\section{模拟退火}
\input{docs/misc/simulated-annealing.tex}
\section{朱刘算法}
\input{docs/misc/zhu-liu-algorithm.tex}
\section{矩阵树定理}
\input{docs/misc/matrix-tree.tex}
\section{随机增量法}
\input{docs/misc/random-incremental.tex}
\section{随机化}
\input{docs/misc/random.tex}
\section{离线处理}
\input{docs/misc/offline.tex}
\section{距离}
\input{docs/misc/distance.tex}
\section{字节顺序}
\input{docs/misc/endianness.tex}
\section{复杂度}
\input{docs/misc/complexity.tex}
\section{读入、输出优化}
\input{docs/misc/io.tex}
\section{离散化}
\input{docs/misc/discrete.tex}
\section{树上启发式合并}
\input{docs/misc/dsu-on-tree.tex}
\cleardoublepage
\backmatter
\input{static/epilogue.tex}
\end{document}
